package com.xxmw.transaction.model.app;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户表
 * @since  2020/4/14 18:03
 * @author luowenliang
 */
@Data
@TableName(value = "user")
public class User implements Serializable {

	private static final long serialVersionUID = 1L;

	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 手机号
	 */
	private String username;

	/**
	 * 姓名
	 */
	private String name;

	/**
	 * 密码
	 */
	private String password;

	/**
	 * 密码盐
	 */
	private String salt;

	/**
	 * 0冻结 1正常
	 */
	private Integer enable;

	/**
	 * 最后登录IP
	 */
	private String ip;

	/**
	 * 注册时间
	 */
	private Date createTime;

	/**
	 * 是否是vip 1 否   2 是
	 */
	@TableField(exist = false)
	private Integer isVip;

	/**
	 * vip 到期时间
	 */
	private Date vipExpirationDate;

	/**
	 * 最后到期时间
	 */
	private Date lastLoginTime;

	/**
	 * 是否领取过体验vip
	 */
	private Integer testVipStatus;

	/**
	 * vip枚举类
	 */
	public enum VipStatus {
		/**
		 * vip用户
		 */
		IS_VIP(2),
		/**
		 * 非vip用户
		 */
		NOT_VIP(1);

		private Integer value;

		VipStatus(Integer value) {
			this.value = value;
		}

		public Integer value () {
			return this.value;
		}

	}

	/**
	 * vip枚举类
	 */
	public enum TestVipStatus {
		/**
		 * 领取过
		 */
		RECEIVED(2),
		/**
		 * 未领取
		 */
		UNRECEIVED(1);

		private Integer value;

		TestVipStatus(Integer value) {
			this.value = value;
		}

		public Integer value () {
			return this.value;
		}

	}

}
